草庐IT

leetcode 2744

全部标签

leetcode 204. Count Primes 计数质数 (Easy)

一、题目大意https://leetcode.cn/problems/count-primes给定整数n,返回所有小于非负整数 n 的质数的数量。示例1:输入:n=10输出:4解释:小于10的质数一共有4个,它们是2,3,5,7。示例2:输入:n=0输出:0示例3:输入:n=1输出:0提示:0二、解题思路输入一个整数,输出也是一个整数,表示小于输入数的质数的个数。埃拉托斯特尼筛法,是判断一个整数是否是质数的方法。并且它可以在判断一个整数n时,同时判断所小于n的整数,因此非常适合这个问题。其原理是:从1到n遍历,假设当前遍历到m,则把所有小于n的、且是m的倍数的整数标为和数;遍历完成后,没有被标

leetcode 665. Non-decreasing Array 非递减数列(中等)

一、题目大意标签:贪心https://leetcode.cn/problems/non-decreasing-array给你一个长度为 n 的整数数组 nums ,请你判断在最多改变 1个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的 i(0示例1:输入:nums=[4,2,3]输出:true解释:你可以通过把第一个4变成1来使得它成为一个非递减数列。示例2:输入:nums=[4,2,1]输出:false解释:你不能在只改变一个元素的情况下将其变为非递减数列。提示:n==nums.length1-105 二、解题思路最多只有一次修改某个数字的机会

leetcode 406. Queue Reconstruction by Height 根据身高重建队列(中等)

一、题目大意标签:贪心https://leetcode.cn/problems/queue-reconstruction-by-height假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个people[i]=[hi,ki]表示第i个人的身高为hi,前面正好有ki个身高大于或等于hi的人。请你重新构造并返回输入数组 people所表示的队列。返回的队列应该格式化为数组queue,其中queue[j]=[hj,kj]是队列中第j个人的属性(queue[0]是排在队列前面的人)。示例1:输入:people=[[7,0],[4,4],[7,1],[5,0

leetcode122. Best Time to Buy and Sell Stock II 买卖股票的最佳时机 II(简单)

一、题目大意标签:贪心https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii给你一个整数数组prices,其中 prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润 。示例1:输入:prices=[7,1,5,3,6,4]输出:7解释:在第2天(股票价格=1)的时候买入,在第3天(股票价格=5)的时候卖出,这笔交易所能获得利润=5-1=4。 随后,在第4天(股票价格=3)的时候买入,在第5天(股

leetcode 763. Partition Labels 划分字母区间(中等)

一、题目大意标签:贪心https://leetcode.cn/problems/partition-labels字符串S由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。示例:输入:S="ababcbacadefegdehijhklij"输出:[9,7,8]解释:划分结果为"ababcbaca","defegde","hijhklij"。每个字母最多出现在一个片段中。像"ababcbacadefegde","hijhklij"的划分是错误的,因为划分的片段数较少。提示:S的长度在[1,500]之间。S只包含小写字母'a

LeetCode算法训练-回溯总结

欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-回溯总结适用问题组合问题:N个数里面按一定规则找出k个数的集合排列问题:N个数按一定规则全排列,有几种排列方式切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集棋盘问题:N皇后,解数独等等通用模板result存放结果集path某个符合条件的结果voidbacktracking(参数){if(终止条件){result.add(path);return;}for(选择:本层集合中元素(树中节点孩子的数量就是集合的大小)){处理节点;backtracking(路径,选择列表);//递归回溯,撤销处理结

[Leetcode464]我能赢吗?——状态压缩+dfs

1.题目在"100game"这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和 达到或超过 100的玩家,即为胜者。如果我们将游戏规则改为“玩家 不能 重复使用整数”呢?例如,两个玩家可以轮流从公共整数池中抽取从1到15的整数(不放回),直到累计整数和>=100。给定两个整数 maxChoosableInteger (整数池中可选择的最大数)和 desiredTotal(累计和),若先出手的玩家是否能稳赢则返回 true ,否则返回 false 。假设两位玩家游戏时都表现 最佳 。示例1:输入:maxChoosableInteger=10,desiredTo

leetcode 452. Minimum Number of Arrows to Burst Balloons 用最少数量的箭引爆气球(中等)

一、题目大意标签:贪心https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons有一些球形气球贴在一堵用XY平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i]=[xstart,xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切y坐标。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为xstart,xend,且满足 xstart ≤x≤xend,则该气球会被引爆 。可以射出的弓箭的数量没有限制。

LeetCode - 整数反转

题目信息源地址:整数反转给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[−2^31, 2^31 −1],就返回0。假设环境不允许存储64位整数(有符号或无符号)。提示信息示例1输入:x=123输出:321示例2输入:x=-123输出:-321示例3输入:x=120输出:21示例4输入:x=0输出:0提示-2^31实现逻辑投机取巧假设这道题目没有环境不允许存储64位整数(有符号或无符号)的限制,其实问题很容易解决,只需要将数字转换成正整数,然后从个位开始反转,最后再根据原始整数的符号来设定结果整数的符号。这种方法的缺陷就是,当数字较大时

[Leetcode464]我能赢吗?——状态压缩+dfs

1.题目在"100game"这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和 达到或超过 100的玩家,即为胜者。如果我们将游戏规则改为“玩家 不能 重复使用整数”呢?例如,两个玩家可以轮流从公共整数池中抽取从1到15的整数(不放回),直到累计整数和>=100。给定两个整数 maxChoosableInteger (整数池中可选择的最大数)和 desiredTotal(累计和),若先出手的玩家是否能稳赢则返回 true ,否则返回 false 。假设两位玩家游戏时都表现 最佳 。示例1:输入:maxChoosableInteger=10,desiredTo